﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GuessNumber
{
    /*
游戏名：猜数字游戏
制作时间：2015-04-25
作者：黄浩
功能需求：
1 可以按Q或q退出
2 可以判断数字是否超出范围
3 可以重复玩
4 可以统计猜测次数
5 根据猜测次数有不同的评级：幸运儿，运气还可以，运气太烂了
6 可以改变猜测的数字范围1-10，1-100，1-200
7 根据数字的范围给出不同提示：差远了（大于50），很接近（小于5）还是有点大或小，差在20内
8 如果50次还没猜出，提示是否需要答案
*/
    
    class Program
    {
        static void Main(string[] args)
        {
            bool gameLoop = true;//游戏循环
            Game game = new Game();//生成game类实例
            while (gameLoop)
            {
                Console.WriteLine(game.getStartText());//说明文本
                game.getRandom();
                do
                {
                    string inputStr = Console.ReadLine().ToUpper().Trim();
                    if (inputStr == "GDC")
                    {
                        Console.WriteLine("请输入难度选择(如果输入的不是a、b、c，难度为初始难度2)：");
                        game.setLevel(Console.ReadLine());
                        game.getRandom();//根据选择重新获取答案
                        game.Count = 0;//归零
                        Console.WriteLine("改变成功，当前游戏难度为"+game.NumArrange);
                    }
                    else if (inputStr == "ANSWER")
                    {
                        Console.WriteLine(game.getHelp());
                    }
                    else if (inputStr == "Q" || inputStr == "q")
                    {
                        gameLoop = false;
                    }
                    else
                    {
                        Console.WriteLine(game.getResult(inputStr));
                        game.Count++;
                        if (game.Count == 30||game.Count == 40||game.Count == 50)
                        {
                            Console.WriteLine("需要帮助吗？（Y/N）：");
                            if (Console.ReadLine().ToUpper() == "Y")
                            {
                                game.getHelp();
                            }
                        }
                        if (game.getResult(inputStr) == "Congratulations！你猜对了！^_^")
                        {
                            Console.WriteLine("共用了"+game.Count+"次！");
                            Console.WriteLine(game.getLevel());
                            Console.WriteLine("还要继续吗？（Y/N）");
                            if (Console.ReadLine().ToUpper() == "Y")
                            {
                                Console.WriteLine(game.getStartText());
                                game.getRandom();
                                game.Count = 0;
                            }
                            else
                            {
                                gameLoop = false;
                            }
                        }
                    }
                } while (gameLoop);
            }
        }
    }
}
